
import java.io.UnsupportedEncodingException;
import java.math.BigInteger;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Alogrithm {


    public void ToHex(){
        System.out.println(Integer.toHexString("0".hashCode()));// 字符串哈希后，十进制转16进制
    }

    public void Md5Alogrithm(){
        try {
            MessageDigest messageDigest=MessageDigest.getInstance("MD5");//输入"SHA-1"实现 SHA-1算法
            //返回实现了摘要算法（哈希算法）的MessageDigest对象。

            messageDigest.update("QQ1766728441".getBytes("UTF-8"));
            //getbyte指定字符集 把字符串（字符）编码为字节  放到一个byte数组里面 然后返回这个byte数组
            // update 指定一个字节数组更新 摘要（哈希）

            byte[] result=messageDigest.digest();
            //通过填充来完成 哈希计算
            System.out.println(new BigInteger(1,result).toString(16));
            //BigInteger 构造方法 返回一个 BigInteger对象 参数1是整数
            //toString 在给定基数中的字符串表示形式。

        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] a)      {
        MD5Alogrithm ha=new MD5Alogrithm();
        ha.ToHex();
        ha.Md5Alogrithm();

    }
}
